Fix issue with unsigned compare peep in dead code.#1673
Fix issue with unsigned compare peep in dead code.#1673chakrabot merged 1 commit intochakra-core:masterfrom
Conversation
|
Hi @Penguinwizzard, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
TTYL, MSBOT; |
ac0295c to
bc43a6c
Compare
|
@dotnet-bot test Ubuntu ubuntu_linux_release_static please |
| byteCodeUsesInstr->byteCodeUpwardExposedUsed = nextinstr->byteCodeUpwardExposedUsed; | ||
| nextinstr->byteCodeUpwardExposedUsed = nullptr; | ||
| } | ||
| } |
There was a problem hiding this comment.
Why not delete nextinstr at this point?
There was a problem hiding this comment.
The code in RemoveCodeAfterNoFallthroughInstr has already referenced the next instruction by the time that we do this. Doing nextinstr->Remove() causes an access violation a couple frames up the call stack if you remove the instruction here.
The unsigned compare peep optimization, after being changed to have the bytecodeuses instruction emitted after the compare instead of before it, had issues with lowering of code hidden behind a bailonnoprofile, in that it would have conflicts on lifetimes due to the loss of atomicity of the bytecodereg use and generation of the compare. This patch attempts to restore that by aggregating the bytecodeuse information for a single instruction into once place.
008acc8 to
a6b59e6
Compare
… dead code. Merge pull request #1673 from Penguinwizzard:fg_fix The unsigned compare peep optimization, after being changed to have the bytecodeuses instruction emitted after the compare instead of before it, had issues with lowering of code hidden behind a bailonnoprofile, in that it would have conflicts on lifetimes due to the loss of atomicity of the bytecodereg use and generation of the compare. This patch attempts to restore that by aggregating the bytecodeuse information for a single instruction into once place.
The unsigned compare peep optimization, after being changed to have
the bytecodeuses instruction emitted after the compare instead of before
it, had issues with lowering of code hidden behind a bailonnoprofile, in
that it would have conflicts on lifetimes due to the loss of atomicity
of the bytecodereg use and generation of the compare. This patch attempts
to restore that by aggregating the bytecodeuse information for a single
instruction into once place.